// =======================================================================
// 
//       Filename:  pluginmanager.hpp
// 
//    Description:  
// 
//        Version:  1.0
//        Created:  09.05.2010 00:07:55
//       Revision:  none
//       Compiler:  g++
// 
//         Author:  Dominik 'domachine' Burgdörfer (-), dominik.burgdoerfer@googlemail.com
//        Company:  -
// 
// =======================================================================


#ifndef  PLUGINMANAGER_INC
#define  PLUGINMANAGER_INC
#include <boost/filesystem.hpp>
#include <boost/shared_ptr.hpp>
#include <vector>

namespace webplodder {
    // Forward declaration
    class Plugin;

    class PluginManager {
        public:
            PluginManager(const boost::filesystem::path& pluginPath);

            void scanPlugins();
            boost::shared_ptr<Plugin> getPlugin(const std::string& name);

        private:
            boost::filesystem::path m_pluginPath;
            std::vector<boost::shared_ptr<Plugin> > m_plugins;
    };
}
#endif   // ----- #ifndef PLUGINMANAGER_INC  -----
